@Lemon
2年前 提问
1个回答

如何分析是不是恶意代码

房乐
2年前
官方采纳

目前,常用恶意代码的分析方法可以分为静态分析和动态分析两种。这两种方法结合使用,能较为全面地收集恶意代码的相关信息,以达到较好的分析效果。

静态分析

静态分析不需要实际执行恶意代码,它通过对其二进制文件的分析,获得恶意代码的基本结构和特征,了解其工作方式和机制。恶意代码特征分析是静态分析中使用的一种基本方法,它通过查找恶意代码二进制程序中嵌入的可疑字符串,如文件名称、URL地址、域名、调用函数等,来进行分析判断。反汇编分析使用反汇编工具将恶意代码程序或感染恶意代码的程序本身转换成汇编代码,通过相关分析工具对汇编代码进行词法、语法、控制流等分析,掌握恶意代码的功能结构。

由于不需要运行恶意代码,静态分析方法不会影响运行环境的安全。另一方面,静态分析方法可以分析恶意代码的所有执行路径。但是随着程序复杂度的提高,执行路径数量庞大,冗余路径增多,会出现分析效率变低的情况,甚至导致分析无法完成。

动态分析

动态分析是指在虚拟运行环境中,使用测试及监控软件,检测恶意代码行为,分析其执行流程及处理数据的状态,从而判断恶意代码的性质,并掌握其行为特点。动态分析针对性强,并且具有较高的准确性,但其分析过程中覆盖的执行路径有限,分析的完整性难以保证。

恶意代码一般会对运行环境中的系统文件、注册表、系统服务以及网络访问等造成不同程度的影响,因此动态分析通过监控系统进程、文件和注册表等方面出现的非正常操作和变化,可以对其非法行为进行分析。另一方面,恶意代码为了进入并实现对系统的攻击,会修改操作系统的函数接口,改变函数的执行流程、输入/输出参数等,因此动态地分析检测系统函数的运行状态及数据流转换过程,能判别出恶意代码行为和正常软件操作。